#============================================
#知识点
# 借助于wsgiref模块
# urls.Py  路由与视图函数对应关系
# views .py  视图函数(后端业务逻辑)
# templates文件夹  专门用来存储html文件
#按照功能的不同拆分之后后续添加功能只需要在urls . py书写对应关系然后取views .py书写业务逻辑即可
#============================================
# 动静态网页
# 静态网页
# 页面上的数据是直接写死的万年不变
# 动态网页
# 数据是实时获取的
# eg :
# 1.后端获取当前时间展示到htm1页面上
# 2.数据是从数据库中获取的展示到html页面上
# import. datetime
# def get, time(envhi:
# AT
# current_ time = datetime . datetime . now() . strftime( '%Y-%m-%d %X ' )
# #如何将后端获取到的数据”传递”给htmL文件?
# with open(r'tempLates/03 mytime.htmL's 'r'k encoding= 'utf-8') as f:
# data = f. read()
# # data就是堆字符串
# data = data. repLace( ' dwadasdsadsadasdas ' e current _time )
# return d
#============================================
# 模版语法之Jinja2模块
# pip3 install jinja2
# #模版语法
# {{ user }}
# {{ user.get( 'username' )}}
# {{ user.age }}
# {{ user[' hobby'] }}

# from jinja2 import TempLate
# def get_dict(env):
#     user_dic = {'username ':'jason','age ' :18 ,' hobby':' read'}
#     with open(r'templates/04 get_dict.htmL','r',encoding='utf-8') as f:
#         data = f.read( )
#     tmp = Template(data)
#     res = tmp.render(user=user_dic)
#     #给get_ dict.htm1传递了一个值页面上通过变量名user就能够拿到user_ dict
#     return res

# 模板语法
# {% for user_ dict in user._List %}
#     <tr> 
    #     <td>{{ user_ dict. id}}</td>
    #     <td>{{ user_ dict . username}}</td>
    #     <td>{{ user_ dict . password}}</ td>
    #     <td>{{ user_ dict. hobby}}</td>
#     </tr>
# {% endfor%}
#============================================
# 自定义简易版本web框架请求流程图
# wsgiref模块
# 1.请求来的时候解析http格式的数据封装成大字典
# 2.响应走的时候给数据打包成符合http格式再返回给浏览器
#============================================
# django
# 特点:大而全自带的功能特别特别特别的多类似于航空母舰
# 不足之处: 
# 有时候过于笨重
# flask
# 特点:小而精
# 自带的功能特别特别特别的少类似于游骑兵
# 第三方的模块特别特别特别的多，如果将flask第三方的模块加起来完全可以盖过django
# 并且也越来越像dj ango
# 不足之处: 
# 比较依赖于第三方的开发者
# tornado
# 特点:异步非阻塞支持高并发
# 牛逼到甚至可以开发游戏服务器
# 不足之处:
# 暂时你不会
#============================================
